package conf

import (
	"github.com/BurntSushi/toml"
	"github.com/caarlos0/env/v6"
)

var (
	// 全局变量
	config *Config = DefaultConfig()
)

// 通过 C() 函数提供统一的配置访问入口，避免散落的全局变量直接访问，更符合封装原则。
func C() *Config {
	return config
}

// 不使用默认配置时，需要通过toml文件或环境变量加载配置

func LoadConfigFromToml(filepath string) error {
	// 实现toml文件和Confi对象的映射
	_, err := toml.DecodeFile(filepath, config)
	if err != nil {
		return err
	}
	return nil
}

func LoadConfigFromEnv() error {
	// 实现环境变量和Confi对象的映射
	err := env.Parse(config)
	if err != nil {
		return err
	}
	return nil
}
